package com.ruoyi.base.utils.unit;

import lombok.Getter;

import java.util.Arrays;
import java.util.Objects;

/**
 * 容量大小单位
 *
 * @author lcf
 */
public enum SizeUnitEnum {
    /**
     * B
     */
    B("B", 0),
    /**
     * KB
     */
    KB("KB", 1),
    /**
     * MB
     */
    MB("MB", 2),
    /**
     * GB
     */
    GB("GB", 3),
    /**
     * TB
     */
    TB("TB", 4),
    /**
     * PB
     */
    PB("PB", 5),
    /**
     * EB
     */
    EB("EB", 6),
    /**
     * ZB
     */
    ZB("ZB", 7),
    /**
     * YB
     */
    YB("YB", 8),
    /**
     * BB
     */
    BB("BB", 9);

    /**
     * 单位
     */
    @Getter
    private String unit;
    /**
     * 级别
     */
    @Getter
    private Integer level;

    SizeUnitEnum(String unit, int level) {
        this.unit = unit;
        this.level = level;
    }

    /**
     * 根据level获取
     */
    public static SizeUnitEnum getByLevel(int level) {
        return Arrays.stream(SizeUnitEnum.values())
                .filter(x -> Objects.equals(x.getLevel(), level))
                .findAny().orElse(null);
    }
}
